From 0e75fbf39cf8b526995d3dd5514861aa786386a6 Mon Sep 17 00:00:00 2001 From: Benjamin Otte Date: Mon, 9 Nov 2015 01:42:41 +0100 Subject: [PATCH] cssnode: Propagate NTH_LAST_CHILD changes properly We were just catching the previous sibling before. Now we properly invalidate all previous siblings (and also all other wiblings, but we can think about optimizing that later). --- gtk/gtkcssnode.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/gtk/gtkcssnode.c b/gtk/gtkcssnode.c index 7a06d6ae9e..aa278eb70a 100644 --- a/gtk/gtkcssnode.c +++ b/gtk/gtkcssnode.c @@ -1005,8 +1005,11 @@ gtk_css_node_set_visible (GtkCssNode *cssnode, | (cssnode->previous_sibling ? 0 : GTK_CSS_CHANGE_FIRST_CHILD)); if (cssnode->previous_sibling) - gtk_css_node_invalidate (cssnode->previous_sibling, GTK_CSS_CHANGE_NTH_LAST_CHILD - | (cssnode->next_sibling ? 0 : GTK_CSS_CHANGE_LAST_CHILD)); + { + if (cssnode->next_sibling) + gtk_css_node_invalidate (cssnode->previous_sibling, GTK_CSS_CHANGE_LAST_CHILD); + gtk_css_node_invalidate (cssnode->parent->first_child, GTK_CSS_CHANGE_NTH_LAST_CHILD); + } } gboolean -- 2.30.2